-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Bias Sitelinks to Extension/Cloud/Docs/Pricing #8712
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add /extension canonical page with metadata and BreadcrumbList JSON-LD - Header: change 'Extension' to link /extension (desktop & mobile) - Home hero: add above-the-fold Docs/Pricing links - Footer: add Cloud and Pricing under Product - Sitemap: prioritize /extension (0.9), /cloud & /pricing (0.8); fix additionalPaths; reduce /enterprise - Robots: publish roocode.com and docs.roocode.com sitemaps - Structured data: add SiteNavigationElement; per-page BreadcrumbList - Ensure explicit metadata on Cloud/Pricing/Extension; fix rel for target=_blank
Review SummaryI've reviewed the PR changes for biasing Google Sitelinks. The implementation looks good overall with proper structured data, breadcrumbs, and sitemap configuration. However, I found one security issue that should be addressed: Issues to Fix
DetailsThe new |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Bias Google Sitelinks and structured data toward key destinations (Extension, Cloud, Docs, Pricing) to improve SEO and navigation signals.
- Add new /extension page with canonical metadata and BreadcrumbList JSON-LD
- Update navigation/header/footer to link to Extension/Cloud/Pricing; add above-the-fold Docs/Pricing links on Home
- Enhance structured data (SiteNavigationElement, per-page breadcrumbs), robots sitemaps, and sitemap priorities
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/web-roo-code/src/lib/structured-data.ts | Adds SiteNavigationElement nodes to the JSON-LD graph to surface Extension/Cloud/Docs/Pricing in sitelinks. |
| apps/web-roo-code/src/components/chromes/nav-bar.tsx | Updates “Extension” to link to /extension on desktop and mobile menus. |
| apps/web-roo-code/src/components/chromes/footer.tsx | Adds Cloud and Pricing links under “Product” to reinforce internal linking. |
| apps/web-roo-code/src/app/robots.ts | Exposes both primary and docs sitemaps to crawlers. |
| apps/web-roo-code/src/app/pricing/page.tsx | Adds BreadcrumbList JSON-LD for Pricing. |
| apps/web-roo-code/src/app/page.tsx | Adds above-the-fold Docs and Pricing links on Home. |
| apps/web-roo-code/src/app/extension/page.tsx | New Extension landing page with metadata and breadcrumb JSON-LD. |
| apps/web-roo-code/next-sitemap.config.cjs | Prioritizes key paths; simplifies and updates additionalPaths. |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| <Button | ||
| size="lg" | ||
| className="w-full hover:bg-gray-200 dark:bg-white dark:text-black sm:w-auto"> | ||
| <a | ||
| href={EXTERNAL_LINKS.MARKETPLACE} | ||
| target="_blank" | ||
| rel="noreferrer" | ||
| className="flex w-full items-center justify-center"> | ||
| Install VS Code Extension | ||
| <ArrowRight className="ml-2" /> | ||
| </a> | ||
| </Button> | ||
| <Button | ||
| variant="outline" | ||
| size="lg" | ||
| className="w-full sm:w-auto bg-white/20 dark:bg-white/10 backdrop-blur-sm border border-black/40 dark:border-white/30 hover:border-blue-400 hover:bg-white/30 dark:hover:bg-white/20 hover:shadow-[0_0_20px_rgba(59,130,246,0.5)] transition-all duration-300"> | ||
| <a | ||
| href={EXTERNAL_LINKS.DOCUMENTATION} | ||
| target="_blank" | ||
| rel="noreferrer" | ||
| className="flex w-full items-center justify-center"> | ||
| Docs | ||
| <ArrowRight className="ml-2" /> | ||
| </a> | ||
| </Button> |
Copilot
AI
Oct 17, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Avoid nesting interactive elements ( inside a button). This is invalid HTML and problematic for screen readers/keyboard nav. Prefer rendering the anchor as the button via an asChild prop or wrapping the Button around a Link/anchor that renders as the clickable element (e.g., <a ... />), or make the outer element the anchor styled like a button.
| <a | ||
| href={EXTERNAL_LINKS.MARKETPLACE} | ||
| target="_blank" | ||
| rel="noreferrer" |
Copilot
AI
Oct 17, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When using target="_blank", also include rel="noopener" to prevent the new page from gaining access to window.opener. Update to rel="noopener noreferrer".
| <a | ||
| href={EXTERNAL_LINKS.DOCUMENTATION} | ||
| target="_blank" | ||
| rel="noreferrer" |
Copilot
AI
Oct 17, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add rel="noopener" alongside noreferrer for external links opened with target="_blank" to mitigate reverse tabnabbing (use rel="noopener noreferrer").
| loc: '/extension', | ||
| changefreq: 'monthly', | ||
| priority: 0.9, | ||
| lastmod: new Date().toISOString(), | ||
| }, |
Copilot
AI
Oct 17, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Since /extension is now a file-system route, it will be auto-discovered by next-sitemap. Keeping it in additionalPaths can create duplicate entries in the sitemap; consider removing this block and relying on transform() to set its priority.
|
🚀 Preview deployed! Your changes have been deployed to Vercel: Preview URL: https://roo-code-website-8139i8yni-roo-code.vercel.app This preview will be updated automatically when you push new commits to this PR. |
| <a | ||
| href={EXTERNAL_LINKS.MARKETPLACE} | ||
| target="_blank" | ||
| rel="noreferrer" | ||
| className="flex w-full items-center justify-center"> | ||
| Install VS Code Extension | ||
| <ArrowRight className="ml-2" /> | ||
| </a> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These external links should use rel="noopener noreferrer" instead of just rel="noreferrer" to prevent the opened page from accessing window.opener, which is a security best practice. This pattern is consistently used throughout the codebase (see page.tsx:72, cloud/page.tsx:155, pricing/page.tsx:244).
This PR biases Google Sitelinks toward the top-level destinations Extension, Cloud, Docs, and Pricing.\n\nKey changes:\n- New /extension page with canonical metadata and BreadcrumbList JSON-LD\n- Header: ‘Extension’ now links to /extension (desktop & mobile)\n- Home hero: added above-the-fold text links to Docs and Pricing\n- Footer: added internal links to Cloud and Pricing under Product\n- Sitemap: prioritizes '/', '/extension' (0.9), '/cloud' and '/pricing' (0.8), lowers '/enterprise'; fixes additionalPaths\n- Robots: exposes both https://roocode.com/sitemap.xml and https://docs.roocode.com/sitemap.xml\n- Structured data: SiteNavigationElement for Extension/Cloud/Docs/Pricing; per-page BreadcrumbList on Cloud, Pricing, Extension\n- Explicit metadata on Cloud/Pricing/Extension and rel added for external links\n\nAll tests pass (Vitest). After merge/deploy, resubmit sitemap in Search Console and request indexing for '/', '/extension', '/cloud', '/pricing'.
Important
Biases Google Sitelinks towards key pages by adding a new
/extensionpage, updating navigation links, and enhancing structured data and sitemap priorities./extensionpage added with canonical metadata andBreadcrumbListJSON-LD./extensionfor 'Extension' (desktop & mobile)./,/extension(0.9),/cloud, and/pricing(0.8), lowers/enterprisepriority.sitemap.xmlanddocs.sitemap.xml.SiteNavigationElementfor 'Extension', 'Cloud', 'Docs', 'Pricing'.relattributes added for external links.additionalPathsinnext-sitemap.config.cjs.This description was created by
for f0802f1. You can customize this summary. It will automatically update as commits are pushed.